home *** CD-ROM | disk | FTP | other *** search
- 100 'Daily Odometer ("DAILYODOMETER")
- 110 CLS
- 120 COLOR 0,15: PRINT "Daily Odometer": COLOR 15,0
- 130 PRINT
- 140 DEFINT A-Z
- 150 GOSUB 1000 'Get number of days in month
- 160 GOSUB 2000 'Let user enter starting date
- 170 INPUT "Number of days forward: ", DFRW
- 180 ' Move forward a day at a time
- 190 FOR N = 1 TO DFRW
- 200 NDAYS(2) = 28 'Adjust February for leap years
- 210 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
- 220 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
- 230 DAY = DAY + 1
- 240 'Move to next month if necessary
- 250 IF DAY > NDAYS(MONTH) THEN DAY = 1 : MONTH = MONTH + 1
- 260 'Move to next year if necessary
- 270 IF (MONTH = 13) THEN YEAR = YEAR + 1: MONTH = 1
- 280 NEXT N
- 290 ' Print target date
- 300 PRINT
- 310 PRINT "Month:";MONTH
- 320 PRINT "Day:";SPC(2);DAY
- 330 PRINT "Year:"; SPC(1); YEAR
- 340 END
- 990 ' Subroutine to set up list with number of days in months
- 1000 DIM NDAYS(12)
- 1010 FOR N = 1 TO 12
- 1020 READ NDAYS(N)
- 1030 NEXT N
- 1040 'Number of days in months
- 1050 DATA 31, 28, 31, 30
- 1060 DATA 31, 30, 31, 31
- 1070 DATA 30, 31, 30, 31
- 1080 RETURN
- 1990 ' Subroutine to let user enter date
- 2000 INPUT "Month (1-12): ", MONTH
- 2010 IF (MONTH < 1) OR (MONTH > 12) THEN PRINT " *No such month *": GOTO 2000
- 2020 INPUT "Day (1-31): ", DAY
- 2030 INPUT "Year: ", YEAR
- 2040 IF (YEAR < 1900) OR (YEAR > 2100) THEN PRINT "Invalid year": GOTO 2000
- 2050 'Check for leap year
- 2060 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
- 2070 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
- 2080 'Check for valid date
- 2090 IF DAY > NDAYS(MONTH) THEN PRINT "* No such day *": GOTO 2000
- 2100 RETURN